package com.lss.studydemo.callback;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

// 3. 实现商家类 - 相当于外卖平台和店家
class Restaurant {
    // 准备饭菜的方法 - 需要接收回调函数
    public void prepareMeal(String dish, MealCallback callback) {
        System.out.println("【餐厅】开始烹饪" + dish + "...");
        
     ExecutorService executor = Executors.newSingleThreadExecutor();
        executor.execute(() -> {
            try {
                // 模拟烹饪时间
                Thread.sleep(3000); // 3秒烹饪时间
                
                // 餐做好了，调用回调方法 - 相当于"给用户打电话"
                System.out.println("【餐厅】" + dish + "做好了！");
                callback.mealReady(dish);
                
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        });
        
        // 立即返回，无需等待餐做好
        System.out.println("【餐厅】已经接到订单，正在准备中...");
    }
}